#pragma once

#include "MSAS.h"

#include "hill_climbing_objective.h"
#include "threshold_objective.h"
#include "SA_objective.h"
#include "rect_container.h"
#include "circle_container.h"
#include "nesting_problem.h"

namespace congruent_packing
{

typedef congruent_packing::nesting_problem_t<circle_container_t> C2N;
typedef congruent_packing::nesting_problem_t<rect_container_t> R2N;
typedef congruent_packing::nesting_problem_t<poly_container_t> P2N;

typedef MSAS<C2N, threshold_objective_t> C2NT;	
typedef MSAS<C2N, SA_objective_t> C2NS;	
typedef MSAS<C2N, hill_climbing_objective_t> C2NH;	

typedef MSAS<R2N, threshold_objective_t> R2NT;	
typedef MSAS<R2N, SA_objective_t> R2NS;	
typedef MSAS<R2N, hill_climbing_objective_t> R2NH;	

};